package exp3;
/*
 * 结义兄弟 题目描述 现在有一群同学都想结成异姓兄弟，
 * 规定按照年龄大小来从大到小排序。你来搜集这些同学的信息：
 * 姓名和对应的出生年月日。且他们不存在同年同月同日生的情况，
 * 你来帮助他们排个序。
 * 输入 输入第一行有一个整数N(0< N < 1000)表示N个同学。
 * 接下来有N行，
 * 且每行都有一个字符串（全为小写字母且长度小于30)和3个整数 ，
 * 分别表示姓名、年、月、日。 所有同学的年龄均为1900年以后的。
 * 输出 请按从大到小的顺序输出所有同学的姓名。
 * 假设不存在同年同月同日生的同学。
 * 样例输入复制 4 zhangsan 2000 7 8 lisi 2000 5 2 wanger 2001 5 1 mazi 2000 5 1 样例输出 mazi lisi zhangsan wanger
 */

import java.util.Arrays;
import java.util.Scanner;
class  Date implements Comparable<Date> {
    int year,month,day;

    public Date(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }

    @Override
    public int compareTo(Date that) {
        if (this.year != that.year) return this.year - that.year;
        if (this.month != that.month) return this.month - that.month;
        return this.day - that.day;
    }
}

class Student implements  Comparable<Student>{
    String name;
    Date birth;

    public Student(String name, Date birth) {
        this.name = name;
        this.birth = birth;
    }


    @Override
    public int compareTo(Student o) {
        return this.birth.compareTo(o.birth);
    }
}
public class AppAgeSort {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Student[] students= new Student[in.nextInt()];
        for (int i=0;i<students.length;i++){
            String name = in.next();
            Date birth = new Date(in.nextInt(),in.nextInt(),in.nextInt());
            students[i] = new Student(name,birth);
        }
        Arrays.sort(students);
        for (Student student : students) {
            System.out.println(student.name);
        }
    }
}
